package com.jishuo.nontax.bfc.dao;

import com.jishuo.nontax.bean.vo.CheckDataVO;
import com.jishuo.nontax.bean.vo.NumAmtVO;
import com.jishuo.nontax.bean.vo.StudentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @auther dinggaofei
 * @Date 2022/12/22 10:55
 */
@Mapper
public interface StudentMapper {

    /**
     * 发送时更新messageid
     *
     * @param student 学生对象
     * @return
     */
    int updateMsgStudent(StudentVO student);

    /**
     * 添加学生空单据
     *
     * @param student 学生对象
     * @return
     */
    int insertBlankStudent(StudentVO student);

    /**
     * 查询学生缴费票据
     *
     * @param billnum 学生学号
     * @return
     */
    StudentVO findStudentInfo(String billnum);


    /**
     * 更新学生缴费单据信息
     *
     * @param student 学生对象
     * @return
     */
    int updateBillPay(StudentVO student);

    /**
     * 根据流水号查询学生缴费票据
     *
     * @param payeraccount 缴款码
     * @return
     */
    StudentVO findStudentBankAffirm(String payeraccount);

    /**
     * 添加单据信息
     *
     * @param studentVO 学生对象
     * @return
     */
    int insertStudent(StudentVO studentVO);

    /**
     * 修改单据信息
     *
     * @param studentVO 学生对象
     * @return
     */

    int updateStudnet(StudentVO studentVO);

    /**
     * 根据sn更新状态
     *
     * @param billstate 缴费状态
     * @param messageid        报文标示
     * @return
     */
    int updateBillState(@Param("billstate") int billstate, @Param("messageid") long messageid);

    NumAmtVO selectStudentNumAmt(@Param("bankid") String bankid, @Param("paybankdt") String paybankdt);

    int deleteStudentfiance(@Param("bankid") String bankid, @Param("paybankdt") String paybankdt, @Param("bankaffirm") String bankaffirm);

    int saveStudentfiance(CheckDataVO checkDataVO);

    //页面数据

    /**
     * 获取学生缴费列表
     *
     * @param studentVO
     * @return
     */
    List<StudentVO> selectStudentPage(StudentVO studentVO);

    /** 冲销后，更改isbankaffirm=0 */
    int updateIsbankAffirm( Long studentid);

    /**
     * 根据ids查找，发送、冲销使用
     * @param billids 数组
     * @return
     */
    List<StudentVO> findStudentByIds(long[] billids);
}
